package info.motteke.qjdbc.operation.select.impl;

import info.motteke.qjdbc.Order;
import info.motteke.qjdbc.column.Meta;
import info.motteke.qjdbc.operation.select.GroupByView;
import info.motteke.qjdbc.operation.select.LimitView;
import info.motteke.qjdbc.operation.select.LockView;
import info.motteke.qjdbc.operation.select.OffsetView;
import info.motteke.qjdbc.operation.select.OrderByView;
import info.motteke.qjdbc.operation.select.WhereView;
import java.util.List;

public class WhereViewImpl<E> extends AbstractWrapper<E> implements WhereView<E> {

    WhereViewImpl(SelectImpl<E> parent) {
        super(parent);
    }

    @Override
    public GroupByView<E> groupBy(Meta... metas) {
        return parent.groupByImpl(metas);
    }

    @Override
    public OrderByView<E> orderBy(Order... orders) {
        return parent.orderByImpl(orders);
    }

    @Override
    public OffsetView<E> offset(int offset) {
        return parent.offsetImpl(offset);
    }

    @Override
    public LimitView<E> limit(int limit) {
        return parent.limitImpl(limit);
    }

    @Override
    public LockView<E> forReadOnly() {
        return parent.forReadOnlyImpl();
    }

    @Override
    public LockView<E> forUpdate() {
        return parent.forUpdateImpl();
    }

    @Override
    public List<E> asList() {
        return parent.asListImpl();
    }

    @Override
    public E asSingle() {
        return parent.asSingleImpl();
    }

    @Override
    public E asSingleOrNull() {
        return parent.asSingleOrNullImpl();
    }
}
